encyclopaediafandomcom_de-20200216-history
Appserver.io
__INDEX__ appserver.io ist die Implementierung eines Anwendungsservers für das PHP basierte Web-Umfeld und stellt eine Verbindung zwischen dem Anwendungsserver-Konzept und klassischen Webservern, wie z.B. Apache dar. Ziel ist es eine Plattform zu entwickeln, die Enterprise Anwendungen in PHP ermöglicht und unterstützt. Um dies zu erreichen besteht die Software aus einer Middleware, welche das Ausliefern klassischer PHP Anwendungen unterstützt und um zusätzliche Webdienste erweitert. Geschichte Die grundlegende Idee ein WildFly-Equivalent für PHP zu entwickeln bestand innerhalb der Firma TechDivision schon seit einigen Jahren. Aufgrund mangelnder technischer Unterstützung durch die Zielsprache PHP konnte mit der Entwicklung jedoch erst im Juli 2013 effektiv begonnen werden. Seit längerem existieren asynchrone Event gestützte Ansätze, durch die sich eine nicht-blockierende Middleware auf Socketbasis in PHP implementieren lässtReactPHP Projekt-Website. Parallel dazu gibt es seit August 2012 durch die PECL Bibliothek pthreads von Joe Watkins die Option von echtem POSIX kompatiblem Multithreadingpthreads Projekt-Homepage. Auch wenn dieses kontrovers diskutiert wirdBenjamin Erb, Concurrent Programming for Scalable Web Architectures wurden zur Implementierung Threads genutzt, da sie Programmierern eine gezieltere Nutzung von Hardware erlauben, als es durch die Nutzung einer gewöhnlichen Laufzeitumgebung möglich ist. Nach Festlegung einer geeigneten technischen Basis startete die Entwicklung von appserver.io auf der Plattform GitHub. Derzeit (Stand Mai 2014) besteht das Projekt aus 28 separaten Repositories, circa 54.000 Lines of Code und einem geschätzten Aufwand von 14 Jahren (COCOMO Modell)Ohloh appserver.io Projektseite. Lizenzierung appserver.io ist eine freie Software unter der OSL in Version 3.0 und kann als installierbare Anwendung von der Projektseite, oder als Quelltext kostenlos über das GitHub Portal heruntergeladen werden. Das Projekt verfolgt dabei einen Freemium Ansatz, bei dem die Anwendung in eine Community-''' und eine '''Enterprise Edition mit zusätzlichen Möglichkeiten geteilt wird. Eigenschaften und Funktionen appserver.io beinhaltet eine eigene Laufzeitumgebung. Diese enthält PHP in Version 5.5 ergänzt um einige Drittanbieterbibliotheken, Erweiterungen und DienstprogrammeAbhängigkeiten der appserver.io Laufzeitumgebung. Die Idee einer komplett beinhalteten Umgebung macht appserver.io zu einer leicht installierbaren und umfassenden PHP Laufzeitumgebung, hat allerdings Nachteile durch die spezifische Zusammenstellung ihrer Komponenten. Vor allem die Nutzung von Multithreading wird in der PHP Community kritisch betrachtet, da es als Bruch des in PHP adaptierten shared nothing Prinzips gilt und Zwischen-Request Kommunikation auf Objektebene erlaubtMultithreading in PHP with pthreads. Zusätzlich zur enthaltenen Laufzeitumgebung versucht das Projekt die Administration zu erleichtern. Zu diesem Zweck wird ein Administrations-Backend zur Verfügung gestellt, das in der Lage ist sowohl die Komponenten der Middleware als auch die Verteilung und Stati von Anwendungen zu überwachen. Ab Version 0.6.0 ist die Anwendungsverwaltung voll implementiert und erlaubt einfache Drag and drop Installation der sogenannten Apps. Zusätzliche Funktionen wie die Konfiguration von virtuellen Hosts, Logging, erweitertes Clustering- sowie Statistik-Verwaltung sind in naher Zukunft geplant. Neben den klassischen auf Requestebene isolierten PHP Anwendungen erlaubt appserver.io auch die Nutzung von PHP-Servlets, Objektinstanzen, welche zwischen Anfragen persistent bleiben. Mit diesen ist es theoretisch möglich, bedeutende Geschwindigkeitsvorteile zu erreichen, da das Bootstrapping der Anwendung nur einmal ausgeführt werden muss. Nachteil daran ist allerdings, dass der für das Bootstrapping verantwortliche Anwendungsteil zuerst in ein solches Servlet integriert werden mussBeispielservlet für den [[Magento] Bootstrapping Prozess]. Wie sein Java Vorbild WildFly bietet auch appserver.io verschiedene Dienste, die sich individuell durch interne und externe Anwendungen nutzen lassen. Diese sind auf modulare Art und Weise eingebunden und bilden ein zentrales Konzept des Anwendungsservers. Im Folgenden ist eine Liste von Diensten und Eigenschaften aufgeführt, die eine appserver.io Installation bereitstellt, wobei sich die meisten unabhängig vom appserver Projekt nutzen lassen. * Webserver * Persistence Container * Message Queue * Servlet Engine * Data Grid * Design by Contract Unterstützung * Deployment API * Integrierter FastCGI Client Wie bereits beschrieben bietet das Projekt spezielle Enterprise Funktionen, für die ein Bezahlmodell existiert. Diese sind wie folgt: * Cluster Unterstützung * Eine Anwendungs-Firewall * Schnappschüsse von installierten Anwendungen * Hot Backup * Lastverteilung Versionsübersicht appserver.io befindet sich zwar derzeit noch in einer frühen Entwicklungsphase, dennoch stellen die Entwickler bereits stabile Vorabversionen über das GitHub Portal zur Verfügung. Folgende Versionen sind bereits erschienen: appserver.io Beta Zusätzlich sind fortlaufende Entwicklerversionen über die Homepage des Projektes verfügbar. Erreichte Meilensteine Das Projekt hat derzeit zwei große Meilensteine zu verzeichnen: * Mit Version 0.5.8 bietet appserver.io eine geführte Windows Installation sowie volle Unterstützung dieses Betriebssystems ab Version 7 * Ab Version 0.6.0 bietet der integrierte Webserver und der modulare Aufbau Kompatibilität zu Nicht-Servlet-Anwendungen Literatur * Meyen, Sebastian (2013): Software Development Trends. Frankfurt am Main: entwickler.press. S. 25-49. * Piech, Guido (2014): Onlineplattform für den Einzelhandel. Das digitale Schaufenster ist erröffnet. In: IT MITTELSTAND, Ausgabe 1-2 (2014), S. 54-64. Referenzen * PHP Magazin: PHP Application Server auf Basis von phtreads * PHP Magazin: Asynchronous I/O in PHP, oder doch lieber Threads? * PHP Magazin: Java EE macht’s vor: Application Server für PHP * Sitepoint: An Interview with the Appserver.io Crew * dev-metal: Postmodern PHP – appserver.io, a multithreaded application server for PHP, written in PHP * SitePoint PHP Blog: An Interview with the Appserver.io Crew Weblinks * www.appserver.io – appserver.io Projektseite * www.github.com – GitHub Projektseite * Downloads finaler Versionen * Downloads fortlaufender Entwicklerversionen Einzelnachweise Kategorie:Freie Server-Software Kategorie:Php-Programm Kategorie:Middleware